/*==============================================================================
             Copyright (c) 2009 - All rights reserved
================================================================================
File description:

    HighLight function definition

================================================================================
      Date            Name                    Description of Change
09-Sep-2009  Xiaofeng.Gu                    Written
$HISTORY$
==============================================================================*/
#pragma once

#include <vector>

class CHighLight
{
public:
	CHighLight(): m_bHighLight(false) {}
	virtual ~CHighLight() {}
	virtual void			HighLight(bool bHighLight) { m_bHighLight = bHighLight; }
	virtual bool			IsHighLight() { return m_bHighLight; }

protected:
	bool					m_bHighLight;
};

typedef std::vector<CHighLight*> HighLightSet;
class CHighLightSet
{
public:
	CHighLightSet();
	virtual~ CHighLightSet();

	void				Add(CHighLight* pObj);
	void				Delete(CHighLight* pObj);
	void				Clear();
	long				GetCount();
	CHighLight*			GetObject(long lAt);
	void				Reset();

private:
	HighLightSet		m_HighLightSet;
};